/******************************************************************************
 * @Filename     : pinmux.h
 *
 * @Version      : V1.0
 * @Subversion   : $
 * @Last modified: 04/07/2020 16:01:41
 * @Modified by  : Mxy
 *
 * @Brief        : PINMUX driver header file
 *
 * Copyright (C) 2020 SKYRELAY Technology co.,Ltd All rights reserved.
 *****************************************************************************/
#ifndef __RC2412_PINMUX_DEF_H__
#define __RC2412_PINMUX_DEF_H__

#include <stdint.h>
#include "sdk_core/rc24xx.h"

#define IOMODE_FUNC0    0x0U        /*!< Selects pin function 0 */
#define IOMODE_FUNC1    0x1U        /*!< Selects pin function 1 */
#define IOMODE_FUNC2    0x2U        /*!< Selects pin function 2 */
#define IOMODE_FUNC3    0x3U        /*!< Selects pin function 3 */
#define IOMODE_FUNC4    0x4U        /*!< Selects pin function 4 */
#define IOMODE_FUNC5    0x5U        /*!< Selects pin function 5 */
#define IOMODE_FUNC6    0x6U        /*!< Selects pin function 6 */
#define IOMODE_FUNC7    0x7U        /*!< Selects pin function 7 */
#define IOMODE_FUNC8    0x8U        /*!< Selects pin function 8 */
#define IOMODE_FUNC_MAX 0x9U        /*!< Selects pin function max */

#define MUX_PORT0       0x0U        /*!< Selects port 0 */
#define MUX_PORT1       0x1U        /*!< Selects port 1 */
#define MUX_PORT2       0x2U        /*!< Selects port 2 */
#define MUX_PORT3       0x3U        /*!< Selects port 3 */
#define MUX_PORT_MAX    0x4U        /*!< Selects port max */

#define IOMODE_USCI0_IO0       IOMODE_FUNC1
#define IOMODE_USCI0_IO1       IOMODE_FUNC1
#define IOMODE_USCI0_IO2       IOMODE_FUNC1
#define IOMODE_USCI1_IO0       IOMODE_FUNC1
#define IOMODE_USCI1_IO1       IOMODE_FUNC1
#define IOMODE_USCI1_IO2       IOMODE_FUNC1
#define IOMODE_USCI2_IO0       IOMODE_FUNC1
#define IOMODE_USCI2_IO1       IOMODE_FUNC1
#define IOMODE_USCI2_IO2       IOMODE_FUNC1
#define IOMODE_USCI3_IO0       IOMODE_FUNC1
#define IOMODE_USCI3_IO1       IOMODE_FUNC1
#define IOMODE_USCI3_IO2       IOMODE_FUNC1

#define IOMODE_TIMERA_PWM_IO0  IOMODE_FUNC3
#define IOMODE_TIMERA_PWM_IO1  IOMODE_FUNC3
#define IOMODE_TIMERA_PWM_IO2  IOMODE_FUNC3
#define IOMODE_TIMERA_PWM_IO3  IOMODE_FUNC3
#define IOMODE_TIMERA_PWM_IO4  IOMODE_FUNC3
#define IOMODE_TIMERA_PWM_IO5  IOMODE_FUNC3
#define IOMODE_TIMERA_PWM_IO6  IOMODE_FUNC3

#define IOMODE_QSPI_SS         IOMODE_FUNC6
#define IOMODE_QSPI_CLK        IOMODE_FUNC6
#define IOMODE_QSPI_DIO0       IOMODE_FUNC6
#define IOMODE_QSPI_DIO1       IOMODE_FUNC6
#define IOMODE_QSPI_DIO2       IOMODE_FUNC6
#define IOMODE_QSPI_DIO3       IOMODE_FUNC6

#define IOMODE_RTC_PULSE       IOMODE_FUNC5

#define IOMODE_TEST_PIN        IOMODE_FUNC8

#endif
